package it.azienda.managerworkstandard.controllo;

import it.azienda.framework.controllo.AzioneBase;
import it.azienda.framework.utilita.Utilita;
import it.azienda.managerworkstandard.modello.BeanDdt;
import it.azienda.managerworkstandard.modello.BeanFattura;
import it.azienda.managerworkstandard.modello.BeanOrdiniPrev;
import it.azienda.managerworkstandard.modello.BeanRicercaProdotto;
import it.azienda.managerworkstandard.modello.BeanScontrino;
import java.util.ArrayList;
import java.util.StringTokenizer;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.myfaces.custom.navmenu.jscookmenu.HtmlCommandJSCookMenu;

public class AzioneRedirezione extends AzioneBase{
    
    ArrayList listaParametri =null;
    
    public void esegui(ActionEvent ae) {
        
        String nomeJsp = "";
        try{
            if (ae.getComponent() instanceof HtmlCommandJSCookMenu) {
                String parametri = (String)((HtmlCommandJSCookMenu) ae.getComponent()).getValue();
                listaParametri = scansioneParametri(parametri);
                nomeJsp = (String) listaParametri.get(0);
            } else {
                nomeJsp = (String) Utilita.getRequest().getAttribute("nomeJsp");
            }
            
            pulisci();
            if(nomeJsp.equals("inserisciFattura")){
                BeanFattura fattura=new BeanFattura();
                getRequest().setAttribute("beanFattura",fattura);
            }else  if(nomeJsp.equals("ricercaProdotto")){
                BeanRicercaProdotto ricercaProdotto=new BeanRicercaProdotto();
                getRequest().setAttribute("beanRicercaProdotto",ricercaProdotto);
            }else if(nomeJsp.equals("inserisciScontrino")){
                BeanScontrino scontrino=new BeanScontrino();
                getRequest().setAttribute("beanScontrino",scontrino);
            }else if(nomeJsp.equals("inserisciDdt")){
                BeanDdt beanDdt=new BeanDdt();
                getRequest().setAttribute("beanDdt",beanDdt);
            }else if(nomeJsp.equals("inserisciOrdine")){
                BeanOrdiniPrev beanOrdiniPrev=new BeanOrdiniPrev();
                beanOrdiniPrev.setTipoDocumento("Ordine");
                getRequest().setAttribute("beanOrdiniPrev",beanOrdiniPrev);
            }else if(nomeJsp.equals("inserisciPreventivo")){
                BeanOrdiniPrev beanOrdiniPrev=new BeanOrdiniPrev();
                beanOrdiniPrev.setTipoDocumento("Preventivo");
                getRequest().setAttribute("beanOrdiniPrev",beanOrdiniPrev);
            }
            
            String url2 = "/"+nomeJsp+".jsf";
            FacesContext ctx = FacesContext.getCurrentInstance();
            UIViewRoot view = ctx.getApplication().getViewHandler().createView(ctx,url2);
            view.setViewId(url2);
            ctx.setViewRoot(view);
            ctx.renderResponse();
        }catch(Exception e){
            
        }
        return;
    }
    
    private ArrayList scansioneParametri(String parametri) {
        StringTokenizer tokenizer = new StringTokenizer(parametri,"|");
        ArrayList lista = new ArrayList();
        ArrayList lista1 = new ArrayList();
        while (tokenizer.hasMoreTokens()) {
            lista.add(tokenizer.nextToken());
        }
        return lista;
    }
    
    public void pulisci()throws Exception{
        HttpSession sessione = (HttpSession)Utilita.getSession();
        HttpServletRequest richiesta =(HttpServletRequest)Utilita.getRequest();
        
        sessione.removeAttribute("form");
        sessione.removeAttribute("posizioneOggetto");
        sessione.removeAttribute("beanFind");
    }
}
